1. Field of the Invention
The present invention relates to systems and methods for providing streaming media to users, and in particular, to a system and method for directed advertising in said streaming media.
2. Description of the Related Art
The dissemination and playback of media programs has undergone substantial changes in the past decade. Previously, media programs (which may include audio, video, or both) were disseminated either by analog broadcast (conventional, satellite, or cable) or by dissemination of films to movie theaters.
These traditional dissemination and playback means remain in use after the advent of digital technology. However, digital technologies have had a profound effect on the dissemination and playback of media programs.
First, digital technology permitted the use of digital video recorders (DVRs). DVRs, while similar in function to standard analog video cassette recorders (VCRs), provide a number of additional useful functions including live pause, the ability to record one program while playing back another, and the integration of the electronic program guides with DVR functionality (so that the recordation of media programs could be scheduled far in advance).
Second, digital technology also permitted the dissemination and playback of media programs via the Internet, and with improved signal processing and more and more households with high-speed Internet access (e.g. DSL, fiber, and/or satellite). These methods of dissemination and playback have become competitive with traditional means. Dissemination of media programs via the Internet may occur either by simple downloading, progressive downloading or streaming.
For progressive download, a media file having the media program is downloaded via the Internet using dial-up, DSL, ADSL, cable, T1, or other high speed connection. Such downloading is typically performed by a web server via the Internet.
Simple downloading downloads the bytes of the media file in any convenient order, while progressive download downloads bytes at the beginning of a file and continues downloading the file sequentially and consecutively until the last byte. At any particular time during progressive downloading, portions of the file may not be immediately available for playback. In some situations, the entire file must be downloaded first before a media player can start playback. In other progressive download situations, media players are able to start playback once enough of the beginning of the file has downloaded, however, the media player must download enough information to support some form of playback before playback can occur. Playback of progressively downloaded media files is often delayed by slow Internet connections and is also often choppy and/or contains a high likelihood of stopping after only a few seconds. Once a progressively downloaded media program has been completely downloaded, it may be stored on the end-user device for later use.
One of the disadvantages of a progressive downloading is that the entity transmitting the data (the web server) simply pushes the data to the client as fast as possible. It may appear to be “streaming” the video because the progressive download capability of many media players allows playback as soon as an adequate amount of data has been downloaded. However, the user cannot fast-forward to the end of the file until the entire file has been delivered by the web server. Another disadvantage with progressive downloading is that the web server does not make allowances for the data rate of the video file. Hence if the network bandwidth is lower than the data rate required by the video file, the user would have to wait a period of time before playback can begin. If playback speed exceeds the data transfer speed, playback may be paused for a period of time while additional data is downloaded, interrupting the viewing experience. However, the video playback quality may be higher when the playback occurs because of the potentially higher data rate. For example, if a 100 kbps video file can be delivered over a 56 kbps modem, the video will be presented at the 100 kbps rate, but there may be periods when playback will be paused while additional video data is downloaded. The video data is typically downloaded and stored as a temporary file in its entirety.
Web servers typically use HTTP (hypertext transport protocol) on top of TCP (transfer control protocol) to transfer files over the network. TCP, which controls the transport of data packets over the network, is optimized for guaranteed delivery of data, not speed. Therefore, if a browser senses that data is missing, a resend request will be issued and the data will be resent. In networks with high delivery errors, resend requests may consume a large amount of bandwidth. Since TCP is not designed for efficient delivery of adequate data or bandwidth control (but rather guaranteed delivery of all data), it is not preferred for the delivery of video data in all applications.
Streaming delivers media content continuously to a media player and media playback occurs simultaneously. The end-user is capable of playing the media immediately upon delivery by the content provider. Traditional streaming techniques originate from a single provider delivering a stream of data to a set of end-users. High bandwidths and central processing unit (CPU) power are required to deliver a single stream to a large audience, and the required bandwidth of the provider increases as the number of end-users increases.
Unlike progressive downloading, streaming media can be delivered on-demand or live. Wherein progressive download requires downloading the entire file or downloading enough of the entire file to start playback at the beginning, streaming enables immediate playback at any point within the file. End-users may skip through the media file to start playback or change playback to any point in the media file. Hence, the end-user does not need to wait for the file to progressively download. Typically, streaming media is delivered from a few dedicated servers having high bandwidth capabilities.
A streaming media server is a specialized device that accepts requests for video files, and with information about the format, bandwidth and structure of those files, delivers just the amount of data necessary to play the video, at the rate needed to play it. Streaming media servers may also account for the transmission bandwidth and capabilities of the media player. Unlike the web server, the streaming media server communicates with the user device 102 using control messages and data messages to adjust to changing network conditions as the video is played. These control messages can include commands for trick play functions such as fast forward, fast reverse, pausing, or seeking to a particular part of the file. Since a streaming media server transmits video data only as needed and at the rate that is needed, precise control over the number of streams served can be maintained. Unlike the case with progressive downloading, the viewer will not be able to view high data rate videos over a lower data rate transmission medium. However, streaming media servers (1) provide users random access to the video file, (2) allows monitoring of who is viewing what video programs and how long they are watched (3) use transmission bandwidth more efficiently, since only the amount of data required to support the viewing experience is transmitted, and (4) the video file is not stored in the viewer's computer, but discarded by the media player, thus allowing more control over the content.
Streaming media servers may use HTTP and TCP to deliver video streams, but generally use RSTP (real time streaming protocol) and UDP (user datagram protocol). These protocols permit control messages and save bandwidth by reducing overhead. Unlike TCP, when data is dropped during transmission, UDP does not transmit resent requests. Instead, the server continues to send data. Streaming media servers can also deliver live webcasts and can multicast, which allows more than one client to tune into a single stream, thus saving bandwidth.
Typically, progressively downloaded media is transmitted to the user device 102 at a rate that is faster than playback. The media program player buffers this data, and may indicate how much of the media program has been buffered by providing an indicator, usually as a part of a “progress bar.” A control is often provided that allows the user to go to any point in the program that has already been buffered by selecting the control and moving it to a different location along the progress bar. This allows the user to randomly access any buffered portion of the media program.
Streaming media players do not rely on buffering to provide random access to any point in the media program. Instead, this is accomplished through the use of control messages transmitted from the media player to the streaming media server.
The delivery of media programs can be accomplished under a variety of models. In one model, the user pays for the viewing of the media program (for example, using a pay-per-view service). In another model widely adopted by broadcast television shortly after its inception, sponsors pay for the presentation of the media program in exchange for the right to present advertisements during or adjacent to the presentation of the program.
The advent of DVRs has had a profound effect upon the advertising model described above. DVRs permit the user to record media programs (in advance or during their broadcast), and permit the user to easily bypass advertisements presented during the media program by use of trick-play functions such as fast forward and reverse.
However, DVRs are not capable of these operations with media programs provided as streaming media. In such cases, the user must view the advertisements. The fact that users cannot skip advertisements within streamed media using a DVR-like device is both a strength and a weakness of this media program delivery paradigm. It is a strength, because advertisers can be assured that the viewers are actually watching the advertisements placed within the media program and not skipping them. However, it also represents a barrier to the widespread viewing of media programs via streaming media because users prefer to skip advertisements that are not of interest.
Systems that offer users some modicum of control are known in the art. For example, the systems disclosed in U.S. Patent Publication 2003/0154475, by Rodriguez, published Aug. 14, 2003, U.S. Patent Publication 2008/0127251, by Watchfogel, published May 29, 2008, U.S. Patent Publication 2003/0149975, by Elderling, published Aug. 7, 2003, and U.S. Patent Publication 2008/0196060 by Varghese.
However, Rodriguez discloses a system wherein electronic advertisement information (EAI) is transmitted to the digital home communications terminal (DHCT) and used to determine whether advertisements are presented. Since the DHCT controls which advertisements are shown to the user, Rodriguez teaches a system wherein the headend cannot be certain whether a viewer has viewed an advertisement or not. Instead, Rodriguez teaches that this information must be inferred from other DHCT inputs. Ad preference are also locally stored, not stored at the media program provider.
Watchfogel likewise discloses a system in which decisions regarding which commercials are to be presented are made at the user device. Watchfogel uses “tags” which are among the metadata transmitted to the user device, which indicate whether an advertisement can be replaced or delayed. The “tags” must be held secure from tampering (otherwise, the headend loses control over which advertisements can be delayed and otherwise controlled), and are therefore encrypted before transmission from the headend to the user unit. Watchfogel teaches that the user unit separately reports which commercials were viewed back to the headend.
Elderling differs in that it discloses the notion of streaming media programs, yet the STB uses a profiling engine to monitor whether the viewer watches ads or not. Thus, Elderling teaches that even when advertisements are streamed to the user device, the user device itself makes the decision regarding which advertisements are displayed, and the user device aggregates viewing information and transmits that information back to the headend. The headend is therefore unaware of which advertisements the viewer has seen and which they have not, and any information the headend actually receives regarding viewer behavior is obtained via a separate message that is substantially delayed in time. Consequently, it cannot easily be used to determine which advertisements to present to the user soon thereafter.
What is needed is a system and method that does not need infer which advertisements the user is watching and those that the user is not, and instead uses available information to determine user viewing of advertisements and uses that information to later refine future advertisement alternatives that are presented to the user for selection. Such a system is less susceptible to abuse by disabling the uplink of information back to the headend by separate communication links or separate communication sessions, and without the use of encryption techniques to securely enable the selection functionality at the user device.
Also, while the foregoing references provide the user with some modicum of control over presented advertisements, they do so via an interface so clumsy as to dissuade the average user from doing so. For example, if it takes longer than 15 seconds of manipulation of the user interface to select an advertisement or an alternative advertisement, most users would simply prefer to view the additional 15 seconds of the currently shown advertisement rather than spend the time and effort to select another.
Finally, the foregoing references also disclose systems wherein the advertisement choices provided to the user for selection are determined so far in advance, recent user inputs cannot be included in the determination of which advertisement choices to provide to the user.
What is needed is a system and method that permits the user to select advertising that they want to view. and permits the headend to rapidly, non-intrusively, and without uplinking information, determine if those advertisements are actually viewed. What is also needed is a system and method that invites the user to select advertisements they want to see, and one that can be used in a time that is substantially less than the commercial break itself. And what is also needed is a system and method that allows the most recent user input to be factored into advertisement selections that are offered to the user. The present invention satisfies these needs.